package com.fanyouzhao.ehome.web.filter; /**
 * @Author: fanyouzhao
 * @Date: 9:55 2021/4/30
 */

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebFilter(filterName = "EncodingFilter",value = "*.do")
public class EncodingFilter implements Filter {
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
        // 执行过滤操作: 如果符合过滤的规则(设定条件), 就放行, 否则就拦截
        // 放行: chain.doFilter(req, resp);   表示过滤器是一个完整的链条,一个环节如果通过验证,就传递到下一个过滤器
        // 多个过滤器之间的顺序?   如果使用注解,则按照name的字典顺序执行/web.xml配置方式,则按照书写顺序执行
        // 如果所有的过滤器都放行, 最终会执行servlet

        //中文处理
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        ((HttpServletResponse)response).setHeader("content-Type","text/html;charset=UTF-8");
        //放行
        chain.doFilter(request, response);
    }

    @Override
    public void init(FilterConfig config) throws ServletException {
        //启动服务器时初始化
    }

    @Override
    public void destroy() {
        //关闭服务器时被销毁
    }

}
